package com.psmorandi.peschampweb.android.tab.adapters;

import java.util.ArrayList;
import java.util.List;

import android.content.Context;
import android.database.DataSetObserver;
import android.view.View;
import android.view.ViewGroup;
import android.widget.SpinnerAdapter;
import android.widget.TextView;

import com.psmorandi.peschampweb.android.model.JogadorVirtual;

public class JogadorVirtualSpinnerAdapter implements SpinnerAdapter {

	private List<JogadorVirtual> mJogadoresVirtuais;
	private Context mContext;

	public JogadorVirtualSpinnerAdapter(List<JogadorVirtual> _jogadores,
			Context _context) {
		
		mJogadoresVirtuais = new ArrayList<JogadorVirtual>(_jogadores.size());
		mJogadoresVirtuais.addAll(_jogadores);
		JogadorVirtual jogadorDummy = new JogadorVirtual();
		jogadorDummy.setNome("Adicionar novo jogador");
		mJogadoresVirtuais.add(0, jogadorDummy);
		mContext = _context;
	}

	@Override
	public int getCount() {

		if (mJogadoresVirtuais != null && !mJogadoresVirtuais.isEmpty()) {
			return mJogadoresVirtuais.size();
		}
		return 0;
	}

	@Override
	public JogadorVirtual getItem(int _index) {
		return mJogadoresVirtuais.get(_index);
	}

	@Override
	public long getItemId(int _index) {
		return mJogadoresVirtuais.get(_index).getID();
	}

	@Override
	public int getItemViewType(int arg0) {
		return android.R.layout.simple_spinner_dropdown_item;
	}

	@Override
	public View getView(int _index, View arg1, ViewGroup arg2) {
		TextView v = new TextView(mContext);
		v.setTextSize(20);
		v.setText(mJogadoresVirtuais.get(_index).getNome());
		return v;
	}

	@Override
	public int getViewTypeCount() {
		return 1;
	}

	@Override
	public boolean hasStableIds() {
		return false;
	}

	@Override
	public boolean isEmpty() {
		return mJogadoresVirtuais == null || mJogadoresVirtuais.isEmpty();
	}

	@Override
	public void registerDataSetObserver(DataSetObserver arg0) {

	}

	@Override
	public void unregisterDataSetObserver(DataSetObserver arg0) {

	}

	/**
	 * The Views which are shown in when the arrow is clicked (In this case, I
	 * used the same as for the "getView"-method.
	 */
	@Override
	public View getDropDownView(int position, View convertView, ViewGroup parent) {
		return this.getView(position, convertView, parent);
	}
}
